# Maintainer: Pierre Schmitz <pierre@archlinux.de>

pkgbase=zsh
pkgname=('zsh' 'zsh-doc')
pkgver=5.9
pkgrel=3
arch=('x86_64')
url='https://www.zsh.org/'
license=('custom')
makedepends=('pcre' 'libcap' 'gdbm' 'yodl')
source=("https://www.zsh.org/pub/zsh-${pkgver}"{,-doc}".tar.xz"{,.asc}
        '0001-50629-do-not-use-egrep-in-tests.patch'
        'zprofile')
sha512sums=('d9138b7f379ad942a5f46819d2dd52d31f3a1129f2a0d1b53d4c5cd43c318b60396da6d37c57c477b8e958fb750209aca0ae93f8c9dd42ac958de006a0ff067e'
            'SKIP'
            '5cc6abcdcfb4f5ad7bc4a31364ca49dfd87ae03e0082d89cc2ba1f00570f6757266ee60894ad31b562408de91494c22f177b414b03cb78c31d92328686be9860'
            'SKIP'
            'af6a905e83807efb614a585ac1876e0a9cc8b745911b43915b06aab46757a6df6dfc64a7a60b53cc7e62e528c04aa7460e660a1de6720476030dd746af76c6e3'
            'b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034')
validpgpkeys=('F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3'
              'E96646BE08C0AF0AA0F90788A5FEEE3AC7937444'
              '7CA7ECAAF06216B90F894146ACF8146CAE8CBBC4')

prepare() {
	cd "${srcdir}/${pkgbase}-${pkgver}"

	# 50629: do not use egrep in tests
	patch -Np1 < ../0001-50629-do-not-use-egrep-in-tests.patch

	# Set correct keymap path
	sed -i 's#/usr/share/keymaps#/usr/share/kbd/keymaps#g' Completion/Unix/Command/_loadkeys

	# Fix usb.ids path
	sed -i 's#/usr/share/misc/usb.ids#/usr/share/hwdata/usb.ids#g' Completion/Linux/Command/_lsusb

	# Remove unneeded and conflicting completion scripts
	for _fpath in AIX BSD Cygwin Darwin Debian Mandriva openSUSE Redhat Solaris; do
		rm -rf Completion/$_fpath
		sed "s#\s*Completion/$_fpath/\*/\*##g" -i Src/Zle/complete.mdd
	done
	rm Completion/Linux/Command/_pkgtool

	# force generation of documentation with correct paths
	rm Doc/version.yo
}

build() {
	cd "${srcdir}/${pkgbase}-${pkgver}"

	./configure --prefix=/usr \
		--docdir=/usr/share/doc/zsh \
		--htmldir=/usr/share/doc/zsh/html \
		--enable-etcdir=/etc/zsh \
		--enable-zshenv=/etc/zsh/zshenv \
		--enable-zlogin=/etc/zsh/zlogin \
		--enable-zlogout=/etc/zsh/zlogout \
		--enable-zprofile=/etc/zsh/zprofile \
		--enable-zshrc=/etc/zsh/zshrc \
		--enable-maildir-support \
		--with-term-lib='ncursesw' \
		--enable-multibyte \
		--enable-function-subdirs \
		--enable-fndir=/usr/share/zsh/functions \
		--enable-scriptdir=/usr/share/zsh/scripts \
		--with-tcsetpgrp \
		--enable-pcre \
		--enable-gdbm \
		--enable-cap \
		--enable-zsh-secure-free
	make
}

check() {
	cd "${srcdir}/${pkgbase}-${pkgver}"
	HOME="${srcdir}" make check
}

package_zsh() {
	pkgdesc='A very advanced and programmable command interpreter (shell) for UNIX'
	depends=('pcre' 'libcap' 'gdbm')
	backup=('etc/zsh/zprofile')
	install=zsh.install

	cd "${srcdir}/${pkgbase}-${pkgver}"
	make DESTDIR="${pkgdir}/" install
	install -D -m644 "${srcdir}/zprofile" "${pkgdir}/etc/zsh/zprofile"
	install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}

package_zsh-doc() {
	pkgdesc='Info, HTML and PDF format of the ZSH documentation'

	cd "${srcdir}/${pkgbase}-${pkgver}"
	make DESTDIR="${pkgdir}/" install.info install.html
	install -D -m644 Doc/zsh.pdf "${pkgdir}/usr/share/doc/zsh/zsh.pdf"
	install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
